#ifndef VOXELIZATION_H_
#define VOXELIZATION_H_


#include "sampling.h"
#include "BoundingBox.h"


class voxelization: public Sampling {

private:
	vector<BoundingBox> voxelize(int resolution);
	bool intersect(BoundingBox a, BoundingBox b);
	void surface_voxelize(float3 a, float3 b, float3 c,
			vector<BoundingBox> &voxellist, int resolution);
	float3 crossproduct(float3 v1, float3 v2);
	float length(float x, float y, float z);
	float3 ABG_compute(float,float,float, float, float,float, float, float);
	int quantize(BoundingBox min_corner, BoundingBox max_corner, float x, float y,
		float z, int resolution);

public:
	void getsample(const char*, int);

};

#endif /* VOXELIZATION_H_ */
